package com.suep.system.config;

import com.suep.system.core.filter.JWTFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.CorsFilter;


@Configuration
public class FilterConfig {
    // 配置 CORS 过滤器
    @Bean
    public FilterRegistrationBean<CorsFilter> corsFilterRegistration(CorsFilter corsFilter) {
        FilterRegistrationBean<CorsFilter> registration = new FilterRegistrationBean<>(corsFilter);
        // 配置过滤器的 URL 匹配规则，这里表示对所有请求都应用该过滤器
        registration.addUrlPatterns("/*");
        // 设置过滤器的顺序，确保 CORS 过滤器先执行
        registration.setOrder(1);
        return registration;
    }

    //过滤器链配置JWT过滤器
    @Bean
    public FilterRegistrationBean<JWTFilter> jwtFilterRegistration() {
        FilterRegistrationBean<JWTFilter> registration = new FilterRegistrationBean<>();
        registration.setFilter(new JWTFilter());
        // 配置过滤器的 URL 匹配规则，这里表示对所有请求都应用该过滤器
        registration.addUrlPatterns("/*");
        // 设置过滤器的顺序，数字越小越先执行
        registration.setOrder(2);
        return registration;
    }
}
